package model;


//kaja a mapelementbol szarmaztatva
public class Food extends MapElement{
	
	protected int capacity;
	protected int maxcapacity;
	protected float odor_range;
	protected boolean isAlive;
	//konstruktor
	public Food(int x, int y, String type, float range) {
		super(x, y, type, range);
		isAlive = true;
		odor_range = 30;
		capacity=5;
		maxcapacity=5;
	}
	//alapkonstruktor
	public Food(){
		super();
		isAlive = true;
		odor_range = 30;
		capacity=5;
		maxcapacity=5;
	}
	public Food(int id,int x,int y){
		super("food",id,x,y);
		capacity=1;
		isAlive = true;
		odor_range = 30;
		maxcapacity=5;
	}


	//Kapacitás csökkentése a hangya típusának megfelelően
	public void capacityDecrease(int n){
		capacity = capacity - n;
		range=range*capacity/maxcapacity;
		if (capacity <= 0){
			odor_range=(float) Double.NEGATIVE_INFINITY;
			isAlive = false;
		}
		
	}

	@Override
	//utkozott a hangya vele?
	public boolean collision(Ant a) {
		//A hangya és a Food középpontja közötti távolság
		double distance = Math.sqrt((Math.pow(Math.abs(a.loc_x - this.loc_x), 2.0)) + (Math.pow(Math.abs(a.loc_y - this.loc_y), 2.0)));
		//Ha a távolság kisebb, mint a Food sugara, akkor ütköztek
		if (distance < range){
			//Ha nagy hangyával ütközött, akkor 2-vel csökken a kapacitása
			if (!a.goinghome && isAlive){
				capacityDecrease(1);
				a.pickupfood();
			}
			return true;
		}
		else return false;
	}
	
	public boolean getisAlive(){
		return isAlive;
	}
}
